2 DIM C$(1),A(6),B(6),C(40),D(40),E(6),F(2),G(6),H(40),I(40),D$(40): DIM J(6),K(40),L(40),M(40),N(40),O(40),P(40),Q(40),R(40),S(40),T(40): DIM U(16),V(16),W(6),X(3),Y(3),Z(3),A1(3),B1(3),C1(3),D1(3)
3 VTAB 3: PRINT "CHOOSE THE GAME YOU WISH TO PLAY?": VTAB 6: PRINT " 1 - CREATED GAME # 1": PRINT : PRINT " 2 - CREATED GAME # 2": PRINT : PRINT " 3 - L. A. LAND MONOPOLY": VTAB 12: HTAB (25): INPUT "CHOICE ?";E: IF E <1 OR E >3 THEN 3
4 ON E GOSUB 23,24,22
5 GOSUB 405: VTAB 15: PRINT : INPUT "DO YOU WANT TO PLAY A PREVIOUSLY SAVED GAME?";C$: PRINT : IF C$ = "Y" THEN 12
6 GOSUB 28: PRINT " OPTIONS": PRINT : INPUT "SHOULD A PLAYER IN PRISON FORFEIT ALL RIGHTS?";C$: IF C$ = "Y" THEN F = 1
7 PRINT : INPUT "SHOULD THERE BE A BONUS FOR LANDING ON FREE PARKING?";C$: IF C$ = "Y" THEN G = 1
8 HOME : VTAB 4: INPUT "HOW MANY PLAYERS? ";H: IF H >6 OR H <2 THEN 8
9 PRINT : FOR E = 1 TO H
10 VTAB 5 +E: PRINT "PLAYER ";E;"'S NAME? ";: ON E GOSUB 61,62,63,64,65,66: IF I >10 OR I <1 THEN 10
11 NEXT E: HOME : POKE -16304,0: GOTO 13
12 GOSUB 27: HOME : POKE -16304,0
13 IF G = 0 THEN J = 0
14 VTAB 21:N = 1:O = M: GOTO 34
15 GOSUB 83: HOME : VTAB 21: PRINT "ANY TRANSACTIONS?";: GET C$: PRINT C$:P = PEEK( -16384): IF P <127 THEN 16
29 INPUT H,M,G,J,Q,R,S,T,U,W,F: INPUT P1$,P2$,W2$,X2$,Y2$,Z2$: FOR E = 1 TO 40: INPUT K(E),L(E),M(E),N(E),O(E),P(E),Q(E),R(E),S(E),T(E),H(E),I(E),C(E),D(E): NEXT E: FOR E = 1 TO 6: INPUT W(E),G(E),E(E),J(E),A(E),B(E): NEXT E: FOR E = 1 TO 16: INPUT U(E),V(E): NEXT E: FOR E = 1 TO 40: IF H(E) = 0 THEN 31
30 X = H(E) +1:Y = E: ROT= 0: GOSUB 80
31 NEXT E: RETURN
32 PRINT A$;"MON C,I,O": PRINT A$;"DELETE OLDGAME": PRINT A$;"OPEN OLDGAME": PRINT A$;"WRITE OLDGAME": PRINT H,B$,M,B$,G,B$,J,B$,Q,B$,R,B$,S,B$,T,B$,U,B$,W,B$,F: PRINT P1$,B$,P2$,B$,W2$,B$,X2$,B$,Y2$,B$,Z2$: FOR E = 1 TO 40
33 PRINT K(E),B$,L(E),B$,M(E),B$,N(E),B$,O(E),B$,P(E),B$,Q(E),B$,R(E),B$,S(E),B$,T(E),B$,H(E),B$,I(E),B$,C(E),B$,D(E): NEXT E: FOR E = 1 TO 6: PRINT W(E),B$,G(E),B$,E(E),B$,J(E),B$,A(E),B$,B(E): NEXT E: FOR E = 1 TO 16: PRINT U(E),B$,V(E): NEXT E: PRINT A$;"CLOSE OLDGAME": RETURN
34 FOR M = 1 TO H: GOSUB 79: NEXT M
35 FOR M = 1 TO H: IF N = 1 THEN M = O
36 N = 0: IF A(M) < >1 THEN B(M) = 0
37 IF G(M) = 1 THEN 59
38 IF A(M) < >1 THEN 48
39 B(M) = B(M) +1: ON M GOSUB 67,68,69,70,71,72: PRINT "YOU ARE IN PRISON"
40 IF W(M) <1 THEN 42
41 PRINT "USING FREE GET OUT OF PRISON CARD.": GOSUB 83: GOSUB 226: GOTO 47
42 INPUT "WILL YOU PAY $50?";C$: IF C$ = "Y" THEN 46
140 PRINT "ANY MORTGAGES?";: GET C$: PRINT C$: IF C$ < >"Y" THEN 150
141 GOSUB 224: IF H(Y) < >M THEN 148
142 IF I(Y) = 1 THEN 149
143 J1 = Y: GOSUB 251:K1 = D1: FOR Y = 1 TO 40: GOSUB 251: IF D1 < >K1 THEN 145
144 IF Q(Y) >0 OR R(Y) >0 THEN 147
145 NEXT Y:I(J1) = 1:J(M) = J(M) +T(J1)/2: IF J(M) >0 THEN 150
146 PRINT "YOU ARE STILL IN DEBT.YOUR CASH IS ";J(M): GOSUB 83: GOTO 140
147 PRINT "YOU MUST SELL ALL BUILDINGS ON MONOPOLY TO BANK BEFORE MORTGAGING.": GOTO 178
148 PRINT "PLAYER DOES NOT OWN BLOCK # ";Y: GOTO 140
149 PRINT "PROPERTY IS ALREADY MORTGAGED": GOTO 140
150 PRINT "ANY MORTGAGES PAID?";: GET C$: PRINT C$: IF C$ < >"Y" THEN 158
151 GOSUB 224: IF H(Y) < >M THEN 156
152 IF I(Y) < >1 THEN 157
153 I1 = J(M) -(1.1 *T(Y)/2): IF I1 <0 THEN 155
154 I(Y) = 0:J(M) = J(M) -(1.1 *T(Y)/2): GOTO 158
155 GOSUB 257: GOTO 158
156 GOSUB 241: GOTO 150
157 PRINT "PROPERTY IS NOT MORTGAGED": GOTO 150
158 PRINT "BUY ANY HOUSES OR HOTELS?";: GET C$: PRINT C$: IF C$ < >"Y" THEN 178
159 GOSUB 237:L1 = 0:H1 = 1:M1 = 1: GOSUB 238: IF L1 = 1 THEN 158
160 GOSUB 258: IF L1 = 1 THEN 158
161 GOSUB 249: IF C1(1) = C1(2) AND C1(2) = C1(3) THEN 163
162 GOSUB 252: GOTO 158
163 IF S >(A1(1) +A1(2) +A1(3)) THEN 166
164 IF T >(E1(1) +E1(2) +E1(3)) THEN 166
165 GOSUB 253: GOTO 158
166 FOR E = 1 TO 3: IF Y(E) <5 AND B1(E) <2 THEN 168
167 GOSUB 254: GOTO 158
168 NEXT E: IF X(3) < >0 THEN 171
169 GOSUB 255: IF ABS(F1(1) -F1(2)) >1 THEN 177
170 GOTO 172
171 GOSUB 255: IF ABS(F1(1) -F1(2)) >1 OR ABS(F1(2) -F1(3)) >1 OR ABS(F1(3) -F1(1)) >1 THEN 177
172 C = 0: FOR E = 1 TO 3:C = C +(E1(E) *(5 -Q(X(E))) +A1(E)) *S(X(E)): NEXT E: IF J(M) -C >0 THEN 174
173 GOSUB 257: GOTO 158
174 J(M) = J(M) -C: FOR E = 1 TO 3:Q(X(E)) = Q(X(E)) +A1(E):R(X(E)) = R(X(E)) +E1(E):S = S -A1(E):T = T -E1(E): IF R(X(E)) = 0 THEN 176
175 S = S +Q(X(E)):Q(X(E)) = 0
176 NEXT E: PRINT "PURCHASE MADE": GOTO 178
177 GOSUB 256: GOTO 158
178 PRINT "SELL ANY HOUSES OR HOTELS?";: GET C$: PRINT C$: IF C$ < >"Y" THEN 209
179 INPUT "DO YOU WANT TO REPLACE A HOTEL WITH A GROUP OF HOUSES?";C$: IF C$ = "Y" THEN 191
180 GOSUB 237:L1 = 0:H1 = -1:M1 = -1: GOSUB 238: IF L1 = 1 THEN 178
181 GOSUB 258: IF L1 = 1 THEN 178
182 GOSUB 249: IF C1(1) = C1(2) AND C1(2) = C1(3) THEN 184
183 GOSUB 252: GOTO 178
184 FOR E = 1 TO 3: IF A1(E) >Q(X(E)) OR E1(E) >R(X(E)) THEN 190
185 NEXT E: IF X(3) < >0 THEN 186
186 GOSUB 255: IF ABS(F1(1) -F1(2)) >1 THEN 189
187 GOTO 188
188 FOR E = 1 TO 3:J(M) = J(M) +S(X(E)) *(A1(E) +E1(E) *5)/2:Q(X(E)) = Q(X(E)) -A1(E):R(X(E)) = R(X(E)) -E1(E):S = S +A1(E):T = T +E1(E): NEXT E: GOTO 178
189 GOSUB 256: GOTO 180
190 PRINT "YOU DON'T OWN THOSE MANY HOUSES OR HOTELS.": GOTO 180
191 PRINT "ENTER ON THE SAME BLOCK #,THE # OF HOUSES YOUR HOTEL WILL BE REPLACED BY,AND THE SALE OF THE HOTEL.": GOSUB 83: GOSUB 83: GOSUB 237:L1 = 0:H1 = 1:M1 = -1: GOSUB 238: IF L1 = 1 THEN 178
192 GOSUB 258: IF L1 = 1 THEN 178
193 GOSUB 249: IF C1(1) = C1(2) AND C1(3) = C1(2) THEN 195
194 GOSUB 252: GOTO 178
195 IF S >(A1(1) +A1(2) +A1(3)) THEN 197
196 GOSUB 253 GOTO 178
197 FOR E = 1 TO 3: IF E1(E) >R(X(E)) THEN 208
198 NEXT E: FOR E = 1 TO 3: IF Y(E) >4 OR B1(E) >1 THEN 200
199 NEXT E: GOTO 201
200 GOSUB 254: GOTO 178
201 IF X(3) < >0 THEN 204
202 GOSUB 255: IF ABS(F1(1) -F1(2)) >1 THEN 207
203 GOTO 205
204 GOSUB 255: IF ABS(F1(1) -F1(2)) >1 OR ABS(F1(2) -F1(3)) >1 OR ABS(F1(3) -F1(1)) >1 THEN 207
205 FOR E = 1 TO 3:J(M) = J(M) +S(X(E)) *(5 *E1(E) -A1(E))/2:Q(X(E)) = Q(X(E)) +A1(E):R(X(E)) = R(X(E)) -E1(E):S = S -A1(E):T = T +E1(E): NEXT E: PRINT "TRANSACTION COMPLETED": IF J(M) >0 GOTO 209
206 PRINT "YOU ARE STILL IN DEBT. YOU MUST CONTINUETO SELL OR MORTGAGE PROPERTY. CASH=";J(M): GOSUB 83: GOTO 178
207 GOSUB 256: GOTO 178
208 PRINT "YOU DON'T OWN THOSE MANY HOUSES OR HOTELS": GOTO 178
209 IF Z = 1 THEN PRINT "READY TO ROLL AGAIN?";: GET C$: PRINT C$: GOTO 211
210 PRINT "NEXT PLAYER?";: GET C$: PRINT C$
211 IF C$ = "Q" THEN GOSUB 399
212 IF J(M) > = 0 THEN 214
213 PRINT "YOU ARE STILL IN DEBT.YOUR CASH IS ";J(M): GOSUB 83: GOTO 125
214 IF C$ = "S" THEN 217
215 IF C$ = "N" THEN 125
216 RETURN
217 GOSUB 32: PRINT "GAME SAVED": GOTO 209
218 INPUT "PURCHASE PRICE?";C: IF C <0 THEN 218
219 RETURN
220 INPUT "BUYER'S NUMBER?";G1: IF G1 >H OR G1 <1 THEN 220
221 RETURN
222 INPUT "SELLER'S NUMBER?";H1: IF H1 >H OR H1 <1 THEN 222
223 RETURN
224 INPUT "BLOCK NUMBER?";Y: IF Y >40 OR Y <2 THEN 224
225 RETURN
226 A1 = 1:I = 20:D = 110: HCOLOR= 4: FOR E = 101 TO 118: HPLOT 138,E TO 157,E: HPLOT 182,E TO 202,E: NEXT E: HCOLOR= 3: FOR E = 1 TO 2:F(E) = INT(6 * RND(1)) +1: IF F(E) >1 THEN GOSUB 232
227 IF F(E) = 4 OR F(E) = 5 OR F(E) = 6 THEN GOSUB 233
228 IF F(E) = 6 THEN GOSUB 234
229 IF F(E) = 5 OR F(E) = 3 OR F(E) = 1 THEN GOSUB 231
237 PRINT "PROPERTY MUST BE DEVELOPED EVENLY. ENTER TRANSACTIONS FOR ALL PROPERTIES IN MONOPOLY. ENTER 0,0,0 FOR THE LAST ENTRY FOR A TWO PROPERTY MONOPOLY.";: GOSUB 83: GOSUB 83: PRINT : RETURN
238 PRINT : PRINT : PRINT :X(3) = 1: FOR E = 1 TO 3
239 VTAB (23): INPUT "BLOCK #?";Y: VTAB (23): HTAB (12): INPUT "# OF HOUSES?";A1(E): VTAB (23): HTAB (27): INPUT "# OF HOTELS?";E1(E): PRINT :D1(E) = Y: IF Y >40 OR Y <0 THEN 246
240 X(E) = Y:Y(E) = Q(X(E)) +H1 *A1(E):B1(E) = R(X(E)) +M1 *E1(E): IF X(3) = 0 THEN 244
241 IF H(Y) = M THEN 243
242 PRINT "PLAYER DOESN'T OWN BLOCK ";Y:L1 = 1: RETURN
243 IF I(Y) = 1 THEN 247
244 IF E1(E) <2 AND E1(E) > = 0 AND A1(E) <5 AND A1(E) > = 0 THEN 248
245 PRINT "ILLEGAL # OF HOUSES OR HOTELS: REENTER.": PRINT : GOTO 239
317 PRINT "ADVANCE TO NEAREST ";T2$;" IF OWNED PAY OWNER TWICE RENTAL.": GOSUB 83: GOSUB 79:Q = 2: IF E(M) <6 THEN 322
318 IF E(M) <16 THEN 323
319 IF E(M) <26 THEN 324
320 IF E(M) <36 THEN 325
321 GOSUB 235
322 E(M) = 6: GOSUB 79: GOTO 264
323 E(M) = 16: GOSUB 79: GOTO 274
324 E(M) = 26: GOSUB 79: GOTO 285
325 E(M) = 36: GOSUB 79: GOTO 295
326 PRINT "FREE GET OUT OF PRISON CARD.":W(M) = W(M) +1: GOTO 125
327 PRINT "GENERAL REPAIRS ON ALL PROPERTY: $25 PER HOUSE, $100 PER HOTEL";:C = 0: FOR K = 1 TO 40: IF H(K) = M THEN C = C +25 *Q(K) +100 *R(K): NEXT K
328 PRINT "PAY $ ";C:J = J +C: GOTO 84
329 PRINT "ADVANCE TOKEN TO ";R$: GOSUB 83: IF E(M) <25 THEN 331
330 GOSUB 235
331 GOSUB 79:E(M) = 25: GOSUB 79: GOTO 284
332 PRINT "BANK PAYS DIVIDEND OF $50":C = -50: GOTO 84
333 PRINT "TAKE A RIDE ON THE ";A1$: GOSUB 83: IF E(M) <6 THEN 335
334 GOSUB 235
335 GOSUB 79:E(M) = 6: GOSUB 79: GOTO 264
336 PRINT U2$:C = -150: GOTO 84
337 GOSUB 83: GOTO 290
338 PRINT D1$:C = 50:J = J +50: GOTO 84
339 PRINT N2$:C = 100:J = J +100: GOTO 84
340 PRINT O2$:C = -20: GOTO 84
341 PRINT Q2$:C = -50: GOTO 84
342 PRINT D0$:C = 150:J = J +150: GOTO 84
343 GOSUB 83: GOTO 290
344 PRINT S2$;" COLLECT $50 FROM EACH PLAYER.": FOR K = 1 TO H: IF G(M) < >1 THEN J(M) = J(M) +50
345 J(K) = J(K) -50: NEXT K: GOSUB 83: GOTO 125
346 PRINT "YOU ARE ASSESSED FOR STREET REPAIRS: $40 PER HOUSE, $110 PER HOTEL":C = 0: FOR K = 1 TO 40: IF H(K) = M THEN C = C +40 *Q(K) +110 *R(K): NEXT K